Considera dos variables \(X\) y \(Y\) con distribución exponencial donde una tiene valor esperado que sea el doble del valor esperado de la otra (tú decides el parámetro).
Escoge al menos 5 tipos de cópulas para modelar la dependencia entre ellas, para cada cópula escoge parámetros que reflejen una dependencia negativa y una dependencia positiva (en total tendrás 10 modelos). Para cada uno de los 10 modelos:
Muestra la función de distribución conjunta de \(X\) y \(Y\) (la fórmula).
Grafica la función de densidad conjunta de \(X\) y \(Y\).
Varianza de \(X\), \(Y\) y \(X + Y\).
Desviación estándar de \(X\), \(Y\) y \(X + Y\).
Cuantil al 95% de \(X\), \(Y\) y \(X + Y\).
Valor esperado condicional de la cola al 95% de \(X\), \(Y\) y \(X + Y\).
Repite el inciso anterior; pero ahora considera que \(X\) y \(Y\) tienen distribución pareto donde una tiene valor esperado que sea el doble del valor esperado de la otra (tú decides los parámetros).
2 Solución
2.1 Caso Exponencial
Tenemos las siguientes variables aleatorias:
\[X\sim \textbf{Exp}(\lambda)\]
\[Y\sim \textbf{Exp}(2\lambda)\]
donde \(F_{x}(x)=1-e^{-\lambda x}\) y \(F_{y}(y)=1-e^{-2\lambda y}\)
Código
library(copula)library(lattice)library(plotly)source("codigo.R")# Exponential distribution for both marginalslambda <-1# Parameters for the marginals# You can adjust these parameters as neededparams1 <- lambda # Rate for the first exponential distributionparams2 <-2*lambda # Rate for the second exponential distribution
donde \(\Phi_{2}\) es la función de distribución conjunta de una distribución normal bivariada con media cero y varianza uno y correlación \(\rho\) (esta determinará la relación negativa o positiva de las variables); y \(\Phi\) es la función de distribución de una distribución normal estándar.
library(copula)rho =.9# Definir cópula gaussianamyCopulaP1 <-normalCopula(rho, dim =2)myCopulaN1 <-normalCopula(-rho, dim =2)# Generar muestras de la cópulaseed <-191654n=10000set.seed(seed)samples <-rCopula(n, myCopulaP1) # caso positivosamples2 <-rCopula(n, myCopulaN1) # caso negativo# Convertir las muestras a distribuciones exponenciales## caso positivosamples[,1] <-qexp(samples[,1], rate = params1)samples[,2] <-qexp(samples[,2], rate = params2)## caso negativosamples2[,1] <-qexp(samples2[,1], rate = params1)samples2[,2] <-qexp(samples2[,2], rate = params2)library(ks)# Estimación de la densidaddens <-kde(as.matrix(samples)) # caso positivodens2 <-kde(as.matrix(samples2)) # caso negativolibrary(plotly)# Convertir la estimación de densidad a un formato adecuado## caso positivox <- dens$eval.points[[1]] y <- dens$eval.points[[2]]z <-matrix(dens$estimate, nrow =length(x), ncol =length(y))## caso negativox2 <- dens2$eval.points[[1]] y2 <- dens2$eval.points[[2]]z2 <-matrix(dens2$estimate, nrow =length(x2), ncol =length(y2))
2.1.1.2.1 Caso Positivo
Código
## caso positivopersp(x, y, z, theta =30, phi =30, expand =0.5, col ="lightblue",xlab ="X", ylab ="Y", zlab ="Z")
Para obtener los resultados de las estadísticas pedidas se generó una muestra de 1000000 observaciones de la cópula y se calcularon las estadísticas para cada una de las variables aleatorias \(X\) y \(Y\) y para la suma de ambas \(X+Y\). Cabe resaltar que como sí conocemos muy bien las variables aleatorias \(X\) y \(Y\), las estadísticas de estas fueron calculadas de manera analítica.
donde \(\textbf{t}_{\nu}(;\rho)\) es la función de distribución conjunta de una distribución t-Student bivariada estandarizada y con correlación \(\rho\) (esta determinará la relación negativa o positiva de las variables); y \(\textbf{t}_{\nu}\) es la función de distribución de una distribución univaria t-Student.
# Parámetros de la cópula y las distribuciones marginalesrho =0.9df =4# Grados de libertad para la cópula t de Student# Definir cópulas t de StudentmyCopulaP2 <-tCopula(rho, dim =2, df = df)myCopulaN2 <-tCopula(-rho, dim =2, df = df)# Generar muestras de la cópulaset.seed(seed)samples <-rCopula(n, myCopulaP2) # caso positivosamples2 <-rCopula(n, myCopulaN2) # caso negativo# Convertir las muestras a distribuciones exponenciales## caso positivosamples[,1] <-qexp(samples[,1], rate = params1)samples[,2] <-qexp(samples[,2], rate = params2)## caso negativosamples2[,1] <-qexp(samples2[,1], rate = params1)samples2[,2] <-qexp(samples2[,2], rate = params2)library(ks)# Estimación de la densidaddens <-kde(as.matrix(samples)) # caso positivodens2 <-kde(as.matrix(samples2)) # caso negativolibrary(plotly)# Convertir la estimación de densidad a un formato adecuado## caso positivox <- dens$eval.points[[1]] y <- dens$eval.points[[2]]z <-matrix(dens$estimate, nrow =length(x), ncol =length(y))## caso negativox2 <- dens2$eval.points[[1]] y2 <- dens2$eval.points[[2]]z2 <-matrix(dens2$estimate, nrow =length(x2), ncol =length(y2))# Crear gráficos interactivos con plotlyp3 <-plot_ly(x =~x, y =~y, z =~z) %>%add_surface()p4 <-plot_ly(x =~x2, y =~y2, z =~z2) %>%add_surface()
2.1.2.2.1 Caso Positivo
Código
## caso positivopersp(x, y, z, theta =30, phi =30, expand =0.5, col ="lightblue",xlab ="X", ylab ="Y", zlab ="Z")
Para obtener los resultados de las estadísticas pedidas se generó una muestra de 1000000 observaciones de la cópula y se calcularon las estadísticas para cada una de las variables aleatorias \(X\) y \(Y\) y para la suma de ambas \(X+Y\). Cabe resaltar que como sí conocemos muy bien las variables aleatorias \(X\) y \(Y\), las estadísticas de estas fueron calculadas de manera analítica.
# Definir parámetros de la cópula de Claytontheta1 =2# dependencia positivatheta2 =-.9# dependencia negativa# Definir cópulas de ClaytonmyCopulaP3 <-claytonCopula(theta1, dim =2)myCopulaN3 <-claytonCopula(theta2, dim =2)grafCopula3 <-graficaDensidadCopulas(myCopulaP3,myCopulaN3)
Para obtener los resultados de las estadísticas pedidas se generó una muestra de 1000000 observaciones de la cópula y se calcularon las estadísticas para cada una de las variables aleatorias \(X\) y \(Y\) y para la suma de ambas \(X+Y\). Cabe resaltar que como sí conocemos muy bien las variables aleatorias \(X\) y \(Y\), las estadísticas de estas fueron calculadas de manera analítica.
Para obtener los resultados de las estadísticas pedidas se generó una muestra de 1000000 observaciones de la cópula y se calcularon las estadísticas para cada una de las variables aleatorias \(X\) y \(Y\) y para la suma de ambas \(X+Y\). Cabe resaltar que como sí conocemos muy bien las variables aleatorias \(X\) y \(Y\), las estadísticas de estas fueron calculadas de manera analítica.
Para obtener los resultados de las estadísticas pedidas se generó una muestra de 1000000 observaciones de la cópula y se calcularon las estadísticas para cada una de las variables aleatorias \(X\) y \(Y\) y para la suma de ambas \(X+Y\). Cabe resaltar que como sí conocemos muy bien las variables aleatorias \(X\) y \(Y\), las estadísticas de estas fueron calculadas de manera analítica.
Para obtener los resultados de las estadísticas pedidas se generó una muestra de 1000000 observaciones de la cópula y se calcularon las estadísticas para cada una de las variables aleatorias \(X\) y \(Y\) y para la suma de ambas \(X+Y\). Cabe resaltar que como sí conocemos muy bien las variables aleatorias \(X\) y \(Y\), las estadísticas de estas fueron calculadas de manera analítica.
donde \(\textbf{t}_{\nu}(;\rho)\) es la función de distribución conjunta de una distribución t-Student bivariada estandarizada y con correlación \(\rho\) (esta determinará la relación negativa o positiva de las variables); y \(\textbf{t}_{\nu}\) es la función de distribución de una distribución univaria t-Student.
# Parámetros de la cópula y las distribuciones marginalesrho =0.9df =4# Definir cópulas t de StudentmyCopulaP2 <-tCopula(rho, dim =2, df = df)myCopulaN2 <-tCopula(-rho, dim =2, df = df)pgrafCopula2 <-graficaDensidadCopulas2(myCopulaP2,myCopulaN2)
Para obtener los resultados de las estadísticas pedidas se generó una muestra de 1000000 observaciones de la cópula y se calcularon las estadísticas para cada una de las variables aleatorias \(X\) y \(Y\) y para la suma de ambas \(X+Y\). Cabe resaltar que como sí conocemos muy bien las variables aleatorias \(X\) y \(Y\), las estadísticas de estas fueron calculadas de manera analítica.
# Definir parámetros de la cópula de Claytontheta1 =2# dependencia positivatheta2 =-.9# dependencia negativa# Definir cópulas de ClaytonmyCopulaP3 <-claytonCopula(theta1, dim =2)myCopulaN3 <-claytonCopula(theta2, dim =2)pgrafCopula3 <-graficaDensidadCopulas2(myCopulaP3,myCopulaN3)
Para obtener los resultados de las estadísticas pedidas se generó una muestra de 1000000 observaciones de la cópula y se calcularon las estadísticas para cada una de las variables aleatorias \(X\) y \(Y\) y para la suma de ambas \(X+Y\). Cabe resaltar que como sí conocemos muy bien las variables aleatorias \(X\) y \(Y\), las estadísticas de estas fueron calculadas de manera analítica.
Para obtener los resultados de las estadísticas pedidas se generó una muestra de 1000000 observaciones de la cópula y se calcularon las estadísticas para cada una de las variables aleatorias \(X\) y \(Y\) y para la suma de ambas \(X+Y\). Cabe resaltar que como sí conocemos muy bien las variables aleatorias \(X\) y \(Y\), las estadísticas de estas fueron calculadas de manera analítica.
Para obtener los resultados de las estadísticas pedidas se generó una muestra de 1000000 observaciones de la cópula y se calcularon las estadísticas para cada una de las variables aleatorias \(X\) y \(Y\) y para la suma de ambas \(X+Y\). Cabe resaltar que como sí conocemos muy bien las variables aleatorias \(X\) y \(Y\), las estadísticas de estas fueron calculadas de manera analítica.